目录
1. nginx返回头包含服务器相关信息,在分布式环境定位问题
1 2 3 4 5 6 7
| server{ ... if ($server_addr ~* "((\d+)\.(\d+))$") { set $server_addr_tail $1; } add_header ser $server_addr_tail; }
|
效果如下:

2.给nginx开启文件目录模式,用于文件下载
1 2 3 4 5 6
| location /download{ root /zen/data/; autoindex on; autoindex_exact_size off; autoindex_localtime on; }
|
3.给nginx开启简单加密模式
- 修改nginx配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| location /download/ { # 下载目录为 /home/myname/download root /home/myname;
# 设置目录浏览 autoindex on;
# 默认为on,显示出文件的确切大小,单位是bytes。 # 改为off后,显示出文件的大概大小,单位是kB或者MB或者GB autoindex_exact_size off;
# 默认为off,显示的文件时间为GMT时间 # 注意:改为on后,显示的文件时间为文件的服务器时间 autoindex_localtime on;
# 在第一次访问目录时,会弹出输入验证框 auth_basic "Restricted";
# 存放密码的文件,/etc/nginx/passwd/download auth_basic_user_file passwd/download;
# 设置charset,解决中文乱码问题 charset utf-8,gbk; }
|
2)修改密码配置文件
输入用户名和密码(密码会在第三步被替换)
vi /etc/nginx/passwd/download
- 设置 admin 的密码(apt-get install apache2-utils):
1
| htpasswd /etc/nginx/passwd/download admin
|
4)重启nginx
参考:http://wenzhixin.net.cn/2013/10/19/nginx_http_auth
4.查看nginx安装了哪些模块
如果自定义header为CUSTOM_HEAD则,在nginx中的变量http_custom_head对应它的值。也就是:http_header小写变量
6.设置请求头
proxy_set_header Host $http_host;
proxy_set_header X-Forward-For $remote_addr;
7.nginx黑白名单
1 2 3 4 5 6 7 8
| deny IP; deny subnet; allow IP; allow subnet; # block all ips deny all; # allow all ips allow all;
|
这样设置以后,该服务器上所有的网站都会按照这个设置来拒绝或允许访问。如果想只针对某个网站,可以在具体的网站的配置中加入:
1 2 3 4
| location / { allow 192.168.0.0/24; deny all; }
|
这样就只允许192.168.0.0网段的ip访问,其他ip访问会返回一个403错误。
还可以自定义一个403错误的页面,可以在/usr/local/nginx/html下新建个error403.html文件,里面按照html的语法写个文档,写上一些说明文字。
然后编辑nginx.conf,加入:
1 2 3 4
| error_page 403 /error403.html; location = /error403.html { root html; }
|
8.window版本nginx
启动:nginx.exe 或者 start nginx.exe
重载:nginx.exe -s reload
关闭:nginx -s stop 或taskkill /F /IM nginx.exe > nul
window下 nginx http concat模块的版本: http://pan.baidu.com/s/1hrAdm0c
参考:http://www.cnblogs.com/chuncn/archive/2011/10/14/2212291.html
9.cors
方式一:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| location ^~ /api { set $cors ""; if ($http_origin ~* (\.eagleon\.id|\.eagleon\.com)) { set $cors "true"; }
proxy_set_header Cookie $http_cookie; proxy_pass http://tomcat.eagleon;
if ($cors = "true") { add_header 'Access-Control-Allow-Origin' "$http_origin"; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'User-Agent,Keep-Alive,Content-Type'; } if ($request_method = OPTIONS) { add_header Access-Control-Allow-Origin $http_origin; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; add_header Access-Control-Allow-Credentials true; add_header Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type; add_header Access-Control-Allow-Headers Content-Type; add_header Access-Control-Max-Age 1728000; return 204; } }
|
方式二:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #跨域访问 map $http_origin $corsHost { default 0; "~http://www.123admin.com" http://www.123admin.com; "~https://www.123admin.com" https://www.123admin.com; "~http://m.123admin.com" http://m.123admin.com; "~http://wap.123admin.com" http://wap.123admin.com; }
server { listen 80; server_name search.123admin.com; root /nginx; location / { add_header Access-Control-Allow-Origin $corsHost; add_header Access-Control-Allow-Headers Content-Type; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; add_header Access-Control-Allow-Credentials true; # 其他逻辑 } }
|